<?php
namespace app\webadmin\controller;
use app\common\controller\Webadmin ; 

class Config extends Webadmin
{
    


    //控制器初始化
    public function _initialize()
    {
        parent::_initialize();

        $this->model = model('Config');
    }
    /**
     * 配置管理
     * @author  lrxin <lrxin@msn.com>
     */
    public function index()
    {

        
        $group = input('group', 1, 'int');
        // $name  = input('name', '', 'trim');

        /* 查询条件初始化 */
        $map= array();
        if (1||$group) {$map['group'] = $group;}
        // if ($name) {$map['name'] = array('like', '%' . $name . '%');}

        $map['status'] = 1;
        $list = $this->model->where($map)->order('sort asc ,id desc')->select();

        // 记录当前列表页的cookie
        Cookie('__forward__', $_SERVER['REQUEST_URI']);

        $data = array(
            'group'       => config('config_group_list'),
            // 'config_type' => config('config_type_list'),
            // 'page'        => $list->render(),
            'group_id'    => $group,
            'list'        => $list,
        );


        $this->assign( $data );
        $this->setMeta('系统管理|配置管理');
        return view('index');
    }

    /**
     * 批量保存配置
     * @return [type] [description]
     */
    public function save($config){
        if(!IS_AJAX){return 'no ajax!!!';}
        
        if ($config && is_array($config)) {
            $Config = db('Config');
            foreach ($config as $name => $value) {
                $map = array('name' => $name);
                $Config->where($map)->setField('value', $value);
            }
        }
        cache('db_config_data', null);//清空缓存
        return ret(0,'保存成功！');


    }


    /**
     * 删除配置  一个删除 和 多个删除
     *  
     */
    public function del() {
        $id = array_unique((array) input('id', 0));

        if (empty($id)) {
            return $this->error('请选择要操作的数据!');
        }

        $map = array('id' => array('in', $id));

        if ( db('Config')->where($map)->delete() ) {
            cache('DB_CONFIG_DATA', null);
            //记录行为
            //action_log('update_config', 'config', $id, session('user_auth.uid'));
            return $this->success('删除成功！');   //$msg = '', $url = null, $data = '', $wait = 3, array $header = []
        } else {
            return $this->error('删除失败！' );    // $msg = '', $url = null, $data = '', $wait = 3, array $header = []
        }
    }


    /**
     * 添加 ， 修改 ， 保存
     * @return [type] [description]
     */
    public function edit( $id= 0 ){
        if(IS_AJAX){

            $config = model('Config');
            $data   = $this->request->post();
            if ($data) {
                $result = $config->isUpdate(!!$data['id'])->validate(true)->save($data);

                
                if (false == $result) {
                    return $this->error($config->getError() );
                } else {
                    cache('db_config_data', null);
                    //记录行为
                    // action_log('update_config', 'config', $data['id'], session('user_auth.uid'));
                    return $this->success('更新成功', Cookie('__forward__'));
                }
            } else {
                return $this->error( $config->getError() );
            }    
        }else{


            $info = array();
            /* 获取数据 */
            $info = db('Config')->where('id',$id)->find();

            if (false === $info) {
                return $this->error('获取配置信息错误');
            } 



            $this->assign('info', $info);
            $this->setMeta('编辑配置');
            return view();

        }

    }

    // /**
    //  * ajax 读取一条记录
    //  * @param  integer $dept_id [description]
    //  * @return [json]           [description]
    //  */
    // public function get( $dept_id = 0 ){
    //     //$this->requestInfo();
    //     if( ! $this->request->isAjax() ){
    //         return 'not ajax!!!' ;
    //     }
    //     $rs = $this->Dept->one($dept_id);
    //     return json($rs);

    // }

    // /**
    //  * 添加 or  修改
    //  * @return [type]           [description]
    //  */
    // public function save( ){

    //     if(!IS_AJAX){ return 'not ajax!!!' ;}

    //     if( false ===  $this->Dept->change() ){
    //         return json(['ret'=> 1 , 'msg'=> $this->Dept -> getError() , 'data' => null ]); 
    //     }
    //     return json(['ret'=> 0 , 'msg'=> 'ok' , 'data' => null ]); 
    // }


    // /**
    //  * [删除 ajax]
    //  * @return [type] [description]
    //  */
    // public function delete(){
    //         if(!IS_AJAX){ return 'not ajax!!!' ;}

    //         $id =  input('post.dept_id/d' , ''  ); //  ( '数据' ， ‘默认值’ ，过滤函数 )

    //         //是否允许删除
    //         if (false === $this->Dept->isAllowDelete( $id ) ){
    //             return json(['ret'=> 1 , 'msg'=> $this->Dept -> getError() , 'data' => null ]); 
    //         }

    //         // $rs = $this->Dept->where('dept_id' , $id )->delete();
    //         $rs = $this->Dept->destroy( $id ); 
    //         return json(['ret'=> 0 , 'msg'=> 'ok' , 'data' => null ]); 

    // }




    


}
